package com.spsoft.vatoutinv.model.vo.matchflow;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.spsoft.vatoutinv.annotation.Translate;
import com.spsoft.vatoutinv.constants.CommonConstant;
import com.spsoft.vatoutinv.constants.DictConstant;
import com.spsoft.vatoutinv.constants.TranslateConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 手工匹配流水/撤销 主页面分页查询返回VO
 *
 * @author : chenxudong
 * @date : 2024/6/25 11:17
 */
@Data
@ApiModel(value = "手工匹配流水或撤销-主页面分页查询返回对象")
public class VmsMatchFlowApplyVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long matid;

    /**
     * 开票单位
     */
    @ApiModelProperty(value = "开票单位")
    private String kpdw;

    /**
     * 发票种类
     */
    @ApiModelProperty(value = "发票种类")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_FPLX)
    private String fplx;

    /**
     * 发票代码
     */
    @ApiModelProperty(value = "发票代码")
    private String fpdm;

    /**
     * 发票号码
     */
    @ApiModelProperty(value = "发票号码")
    private String fphm;

    /**
     * 开票日期
     */
    @ApiModelProperty(value = "开票日期")
    @Translate(type = TranslateConstant.DATE)
    private Date kprq;

    /**
     * 不含税金额
     */
    @ApiModelProperty(value = "不含税金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal bhsje;

    /**
     * 税额
     */
    @ApiModelProperty(value = "税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal se;

    /**
     * 开票金额
     */
    @ApiModelProperty(value = "开票金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal kpje;

    /**
     * 流水金额
     */
    @ApiModelProperty(value = "流水金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal lsje;

    /**
     * 流水税额
     */
    @ApiModelProperty(value = "流水税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal lsse;

    /**
     * 税额差异
     */
    @ApiModelProperty(value = "税额差异")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal secy;

    /**
     * 允许金额差异
     */
    @ApiModelProperty(value = "允许金额差异")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal yxjecy;

    /**
     * 差异原因
     */
    @ApiModelProperty(value = "差异原因")
    private String cyyy;

    /**
     * 申请说明
     */
    @ApiModelProperty(value = "申请说明")
    private String sqsm;

    /**
     * 受票方名称
     */
    @ApiModelProperty(value = "受票方名称")
    private String spfmc;

    /**
     * 受票方识别号
     */
    @ApiModelProperty(value = "受票方识别号")
    private String spfsbh;

    /**
     * 受票方银行账号
     */
    @ApiModelProperty(value = "受票方银行账号")
    private String spfyhzh;

    /**
     * 受票方地址电话
     */
    @ApiModelProperty(value = "受票方地址电话")
    private String spfdzdh;
}
